// 实现可迭代接口（Iterable）
const obj = {
    store: ['foo', 'bar', 'baz'],
    [Symbol.iterator]: function() {
        let index = 0
        const self = this
        // iterator 迭代器接口
        return {
            // 用于迭代的next方法
            next: function() {
                // 迭代结果
                const result =  {
                    value: self.store[index], // 当前被迭代的结果
                    done: index >= self.store.length // 迭代是否结束
                }
                index++
                return result
            }
        }
    }
}

for (const item of obj) {
    console.log('循环体', item)
}